草庐IT

Java Quartz 作业持久化

全部标签

xml - 无法在 hadoop 作业中读取 bz2 压缩文件

我有一个XML文件要在MapReduce作业中处理。虽然我可以在未压缩时处理它,但当我将它压缩为bz2格式并将其存储在hdfs中时它不起作用。我是否需要进行一些更改,例如指定要使用的编解码器-我不知道在哪里做。任何例子都会很棒。我正在使用mahaout的XMLInputFormat来读取未压缩的XML文件。我用了bzip2命令压缩文件和hadoopdfs-copyFromLocal将文件复制到DFS。我有兴趣阅读和处理里面的内容xml文档的标签。我正在使用hadoop-1.2.1发行版。我可以看到有FileOutputFormat.setOutputCompressorClass,但F

hadoop - 从 RecordReader/InputFormat 访问作业的配置

我正在使用Hadoop,我必须创建自定义InputFormat。为此,我覆盖了InputFormat和RecordReader类,就像解释的那样here我想访问作业的配置(在运行作业之前访问一些变量集)。我可以访问“TaskAttemptContext”并从中获取配置对象,但这不是作业的全局配置。我不知道我想要的东西是否可行,但如果您有想法,那将非常有帮助。谢谢。 最佳答案 最后,TaskAttemptContext包含全局配置,我可能弄错了。因此,可以将变量从启动器main()传递到InputFormat。

java - 如何使用storm将数据持久化到HDFS

我有一个简单的bolt,它从kafkaspout读取数据,然后将数据写入HDFS目录。问题是在集群停止之前,bolt不会写入。我如何确保bolt从kafkaspout读取一个元组,然后立即将其写入HDFS,或者至少写入每个“n”条目。(我用的是CDH4.4,Hadoop2.0)bolt的java:publicclassPrinterBolt10extendsBaseRichBolt{privateOutputCollectorcollector;privateStringvalues;Configurationconfiguration=null;FileSystemhdfs=null

python - 是否可以将 Conda 环境用作 Hadoop 流作业(在 Python 中)的 "virtualenv"?

我们目前正在使用Luigi、MRJob和其他框架来运行使用Python的Hadoo流作业。我们已经能够使用自己的virtualenv运送作业,因此节点中没有安装特定的Python依赖项(seethearticle)。我想知道是否有人对Anaconda/Conda包管理器做过类似的事情。PD。我也知道Conda-Cluster,但是它看起来像是一个更复杂/更复杂的解决方案(并且它在付费专区后面)。 最佳答案 2019年更新:答案是肯定的,方法是使用conda-packhttps://conda.github.io/conda-pack

hadoop - 目录为空时如何防止 Hadoop 作业失败?

当输入目录中没有文件时,我有一个作业失败了。我得到的异常如下:org.apache.hadoop.mapreduce.lib.input.InvalidInputException:InputPatternmaprfs:/profile/*我知道这个异常来自FileInputFormat类。解决这个问题的最佳方法是什么。覆盖InputFormat类是唯一的解决方案吗?谢谢 最佳答案 在您的输入路径中放置一个空文件。在驱动程序的开头列出您的输入路径(S)。如果没有文件,则不提交作业直接退出。

java - 在 hadoop 作业结束后运行 pig 作业时的 GC 开销

我正在运行一个非常简单的pig脚本(pig0.14,Hadoop2.4):customers=load'/some/hdfs/path'usingSomeUDFLoader();customers2=foreach(groupcustomersbycustomer_id)generateFLATTEN(group)ascustomer_id,MIN(dw_customer.date)asdate;storecustomers2into'/hdfs/output'usingPigStorage(',');这将启动约60000个映射器和999个缩减器的map-reduce作业。在map-r

hadoop - 如何在Hadoop作业中保持状态?

我正在研究计划每天运行一次的hadoop程序。它需要一堆json文档,并且每个文档都有一个时间戳,用于显示文档的添加时间。我的程序只应处理自上次运行以来添加的文档。因此,我需要保持一个状态,该状态是显示我的Hadoop作业上次运行的时间的时间戳。我当时想将此状态存储在SQLServer中,并在我的工作的驱动程序中查询该状态。这是一个好的解决方案还是一个更好的解决方案?ps。我的Hadoop工作正在HDInsight上运行。话虽如此,仍然可以从我的驱动程序查询SQLServer吗? 最佳答案 我们已经针对在AWS(AmazonWebS

oracle - Sqoop 作业因 Oracle 导入的 KiteSDK 验证错误而失败

我正在尝试运行Sqoop作业以从Oracle数据库加载并以Parquet格式加载到Hadoop集群。这项工作是增量的。Sqoop版本为1.4.6。甲骨文版本是12c。Hadoop版本为2.6.0(发行版为Cloudera5.5.1)。Sqoop命令是(创建作业并执行它):$sqoopjob-fshdfs://:8020\--createmyJob\--import\--connectjdbc:oracle:thin:@:/\--username\-P\--as-parquetfile\--table.\--target-dir\--incrementalappend\--check-c

amazon-web-services - 从 Spark 集群上的 S3 读取 Spark 作业会出现 IllegalAccessError : tried to access method MutableCounterLong

这个问题在这里已经有了答案:java.lang.NoClassDefFoundError:org/apache/hadoop/fs/StorageStatistics(2个答案)关闭4年前。我在DC/OS上有一个Spark集群,我正在运行一个从S3读取的Spark作业。版本如下:星火2.3.1Hadoop2.7AWS连接依赖:"org.apache.hadoop"%"hadoop-aws"%"3.0.0-alpha2"我通过执行以下操作读入数据:`valhadoopConf=sparkSession.sparkContext.hadoopConfigurationhadoopConf.

apache-spark - 为什么在完成作业和关闭 Spark 之间会发生磁盘繁忙尖峰?

在执行完所有spark任务后,我检测到意外的磁盘IO(DISKBUSY峰值)完成但spark上下文并没有停止——如图案例2所示21:56:47.任何人都可以帮助解释它并提供有关如何避免的建议还是推迟?或者Spark上下文是否有一些周期性的异步IO可能导致峰值的事件?谢谢!给出了在两种情况下运行SparkSQL批处理作业的示例。在第一一,我执行sql工作负载,并在之后立即停止spark上下文.show()Action结束。在第二种情况下,我在之后添加了1分钟的sleep.show()通过使用Thread.sleep(60000),然后停止Spark上下文。结果显示两种情况下执行sql工作